#include "task_msg.h"

#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "croutine.h"


#include "bsp_led.h"
#include "msg.h"
#include "protocol.h"

#include "task_network.h"

TaskHandle_t xHandleTaskMsg = NULL;
uint8_t msgResult = 0;

void vTask_Msg(void *pvParameters)
{
  while(1)
	{
		vTaskDelay(500 / portTICK_RATE_MS );

		// 接收到数据处理---------------------------------------
		if(msgResult==1)   
		{
			protocolDeal(msg);
			msgResult = 0;
		}
		
		// 发送数据处理-----------------------------------------
		if(bc26.connectFlag == ON_LINE)					
		{
			bool stat = protocolSend();
			if(stat==false)   // 如果发送失败，直接开始重新连接
			{
				bc26.connectFlag = OUT_LINE;
			}
		}
		// 在缓冲区里有数据并且网络断开的情况下需要先去连接网络
		if(bc26.connectFlag == OUT_LINE)		//如果当前确实有数据发送但是，又没有连接成功，需要去进行网络连接，之后在发数据
		{
			bc26.connectFlag = START_CONNECT;
			BC26_Connect("180.164.179.240",6801);   // 直接连接
		}
	}
}

